import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** 打卡记录信息 */
export interface Checkin {
          id: number; // 打卡记录ID
          userId?: number; // 用户ID
          checkinDate?: string | Dayjs; // 打卡日期
          totalBooks?: number; // 阅读数量
          totalDuration?: number; // 阅读时长
          readingNotes: string; // 阅读心得
          status?: number; // 打卡状态
          consecutiveDays?: number; // 连续打卡天数
          creator: string; // 创建者
          createTime: string | Dayjs; // 创建时间
          updater: string; // 更新者
          updateTime: string | Dayjs; // 更新时间
          deleted: string; // 删除标志
  }

// 打卡记录 API
export const CheckinApi = {
  // 查询打卡记录分页
  getCheckinPage: async (params: any) => {
    return await request.get({ url: `/pickbook/checkin/page`, params })
  },

  // 查询打卡记录详情
  getCheckin: async (id: number) => {
    return await request.get({ url: `/pickbook/checkin/get?id=` + id })
  },

  // 新增打卡记录
  createCheckin: async (data: Checkin) => {
    return await request.post({ url: `/pickbook/checkin/create`, data })
  },

  // 修改打卡记录
  updateCheckin: async (data: Checkin) => {
    return await request.put({ url: `/pickbook/checkin/update`, data })
  },

  // 删除打卡记录
  deleteCheckin: async (id: number) => {
    return await request.delete({ url: `/pickbook/checkin/delete?id=` + id })
  },

  /** 批量删除打卡记录 */
  deleteCheckinList: async (ids: number[]) => {
    return await request.delete({ url: `/pickbook/checkin/delete-list?ids=${ids.join(',')}` })
  },

  // 导出打卡记录 Excel
  exportCheckin: async (params) => {
    return await request.download({ url: `/pickbook/checkin/export-excel`, params })
  }
}